package com.freemalll.merchant.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author songshixiong
 * @ClassName MerInstallmentInfoDto
 * @description:
 * @date 2025年05月26日
 * @version: 1.0
 */
@Data
public class MerInstallmentInfoDto {

    @Schema(description ="分期信息主键")
    private String installmentId;

    @Schema(description ="商户id")
    @NotBlank(message = "商户id不能为空")
    private String merId;

    @Schema(description ="是否首次")
    @NotNull(message = "是否首次不能为空")
    private Boolean firstFlag;

    @Schema(description ="分期占比")
    @NotNull(message = "分期占比不能为空")
    private BigDecimal proportion;

    @Schema(description ="分期联系人姓名")
    @NotBlank(message = "分期联系人姓名不能为空")
    private String contactsName;

    @Schema(description ="分期联系人电话")
    @NotBlank(message = "分期联系人电话不能为空")
    private String contactsPhone;

    @Schema(description ="月分期量")
    @NotNull(message = "月分期量不能为空")
    private Integer monthInstallmentQuantity;

    @Schema(description ="预计我司占比")
    @NotNull(message = "预计我司占比不能为空")
    private BigDecimal businessRate;

    @Schema(description ="首推平台")
    @NotBlank(message = "首推平台不能为空")
    private String firstRecommendedPlatform;
    private String firstRecommendedPlatformName;

    @Schema(description ="竞品产品类型 多选逗号隔开")
    @NotBlank(message = "竞品产品类型不能为空")
    private String competitiveProductTypes;
    private String competitiveProductTypesName;

    @Schema(description ="竞品信息列表")
    @NotNull(message = "竞品信息列表不能为空")
    @Valid
    private List<MerInstallmentInfoCompetitiveDto> competitiveList;
}
